import wx from 'weixin-js-sdk'
import CONFIG from '@/common/config'
import { wxInfoApi } from '@/api/api.js'

export const getInfo = wxInfoApi({ url: location.href.split('#')[0] })

export function setConfig(shareData) {
  getInfo.then(res => {
    wxConfig(res.data, shareData)
  })
}

function wxConfig(res, shareData) {
  shareData.imgUrl = shareData.imgUrl || `${CONFIG.PATH}static/share/share-logo.jpg`
  shareData.link =
    shareData.link.split('#')[0] + 'index/index/redirect?redirect=' + encodeURIComponent(shareData.link.split('#')[1])
  console.log('分享内容：', shareData)
  wx.config({
    debug: false,
    appId: res.appId,
    timestamp: res.timestamp,
    nonceStr: res.nonceStr,
    signature: res.signature,
    jsApiList: ['updateAppMessageShareData', 'updateTimelineShareData', 'chooseWXPay', 'scanQRCode']
  })
  wx.ready(() => {
    wx.updateAppMessageShareData({
      title: shareData.title,
      desc: shareData.desc,
      link: shareData.link,
      imgUrl: shareData.imgUrl,
      success: function() {
        console.log('朋友分享内容：', shareData)
        // 设置成功
      }
    })
    wx.updateTimelineShareData({
      title: shareData.title,
      link: shareData.link,
      imgUrl: shareData.imgUrl,
      success: function() {
        console.log('朋友分享圈内容：', shareData)
        // 设置成功
      }
    })
  })
  wx.error(function(err) {
    alert(JSON.stringify(err))
  })
}

export function chooseWXPay(data, callback) {
  // 支付
  wx.chooseWXPay({
    timestamp: data.timeStamp, // 支付签名时间戳，注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
    nonceStr: data.nonceStr, // 支付签名随机串，不长于 32 位
    package: data.package, // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=\*\*\*）
    signType: data.signType, // 签名方式，默认为'SHA1'，使用新版支付需传入'MD5'
    paySign: data.paySign, // 支付签名
    success: function() {
      callback()
    }
  })
}

export function scanQRCode(callback) {
  wx.scanQRCode({
    needResult: 1, // 默认为0，扫描结果由微信处理，1则直接返回扫描结果，
    success: function(res) {
      callback(res.resultStr)
    }
  })
}
